using Godot;

public partial class Trail : Line2D
{
    [Export] public int MaxLength = 20; // 拖尾长度（点的数量）

    // 缓存父节点引用，减少 GetParent 调用开销
    private Node2D _target;

    public override void _Ready()
    {
        _target = GetParent() as Node2D;
        
        // 既然开了 TopLevel，最好重置一下自身的变换，防止初始偏移
        GlobalPosition = Vector2.Zero;
        GlobalRotation = 0;
        
        // 清空编辑器里可能残留的点
        ClearPoints();
    }

    public override void _Process(double delta)
    {
        if (_target == null) return;

        // 1. 在头部添加当前子弹的位置 (全局坐标)
        AddPoint(_target.GlobalPosition);

        // 2. 如果点太多，删除最旧的尾巴
        if (GetPointCount() > MaxLength)
        {
            RemovePoint(0);
        }
    }
}